Engine crankshaft position recognition and tracking method applicable to cam and crankshaft signals with arbitrary patterns

ABSTRACT

A method and system for providing data representing crankshaft position. For each rising edge of the crankshaft signal, a position value and a factor value are stored in a look-up table. Cam and crankshaft signals are used to locate an initial crankshaft position. This initial position value is used as a pointer to the look-up table, and incremented with each rising pulse of the crankshaft signal. Data from the table is used to extrapolate crankshaft position from crankshaft signal values to a desired resolution in degree angle units.

RELATED PATENT APPLICATION

This application claims the benefit of U.S. Provisional PatentApplication Ser. No. 60/557,208 entitled “Engine Crank Shaft PositionRecognition and Tracking Method Applicable to Cam and Crank PositionSignals with Arbitrary Patterns” filed Mar. 29, 2004.

TECHNICAL FIELD OF THE INVENTION

This invention relates to engine control systems, and more particularlyto recognition and tracking of engine crankshaft position.

BACKGROUND OF THE INVENTION

Engine crankshaft position recognition and tracking is an important partof measurement of engine operating conditions. Today's engine controlunits (ECUs) rely upon real time measurements of crankshaft position forvarious engine crankshaft-sensitive functions, such as ignition,injection, cylinder cut, engine speed measurement, injection andignition timing measurements.

To perform precise engine control, crankshaft position-sensitivecommands need to be synchronized with the crankshaft position in angledomain. Therefore, the ECU must recognize and track the position of thecrankshaft in the angle domain in real-time.

A combination of cam signals and crankshaft signals is used to recognizeand track the engine crankshaft position. Engine and vehiclemanufacturers have invented various cam and crankshaft signal patterns.These patterns are designed to allow the ECU to recognize the crankshaftposition quickly once the crankshaft is rotated by the starter. as wellas to track the crankshaft position accurately while the engine isrunning.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a computer-implemented system for engine crankshaftposition and tracking in accordance with the invention.

FIG. 2A illustrates the operation of, and one embodiment of the hardwarefor the crankshaft position tracking module of FIG. 1.

FIG. 2B illustrates the contents of the look-up table of FIG. 2A.

FIG. 3 illustrates a portion of an engine crankshaft position toothwheel.

FIGS. 4A-4C illustrate examples of engine cam and crankshaft positionsensor signals.

FIG. 5 illustrates a partial look-up table for the cam and crankshaftsignal patterns of FIG. 4.

DETAILED DESCRIPTION OF THE INVENTION

The following description is directed to a method and system for enginecrankshaft position recognition and tracking. The system and method iscapable of recognizing the crankshaft position in less than one enginecycle. As a result, the ECU may begin control of tasks such asinjections and ignitions within one engine cycle.

The method (and its hardware implementations) provide a “generic”measurement of crankshaft position, in the sense that the input cam andcrankshaft signal position signal patterns may be arbitrary. Enginecontrol systems are easily prototyped because the method can be easilymodified for any cam and crankshaft position signal pattern.Applications of the method include engine and vehicle control, andengine and vehicle benchmarking.

FIG. 1 illustrates an engine crankshaft position recognition andtracking system 100 in accordance with the invention. Engine 101 isassumed to have cam and crankshaft position sensors 102 and 103, whichmay be conventional engine sensor devices. As explained below, sensors102 and 103 provide signal patterns, which may vary from engine toengine.

The engine cam and crankshaft position sensor signals may be conditionedas standard transistor-transistor logic (TTL) signals. Their risingedges and falling edges may be captured by integrated circuit chips suchas field programmable gate arrays (FPGA), which may be used to implementprocessing modules 104 a, 104 b, and/or 104 c.

Position recognition and tracking processing module 104 may beimplemented with commercially available processing and memory devices.Module 104 may be implemented with hardware, software, firmware, or acombination thereof, to perform the method described herein. Memorystorage may be implemented with devices such as read only memory (ROM)devices. For purposes of this description, a “processor” may range froma simple device capable of at least accessing and manipulating storeddata to a more complex software-programmable device. As is evident fromthe description here, the tasks performed by modules 104 a and 104 b arenot particularly complex, whereas module 104 c does perform arithmeticcalculations.

More specifically, module 104 performs various algorithms andcalculations for crankshaft position recognition and tracking. Module104 may be integrated into the processing system that implements ECU105, or it may be a separate unit in data communication with ECU 105.Either way, module 104 provides ECU 105 with data representingcrankshaft shaft position in angle domain.

The method implemented by system 100 can be divided into three mainparts: crankshaft position recognition, crankshaft position tracking,and position extrapolation.

Crankshaft Position Recognition

Once the crankshaft is rotated by the starter of engine 101, ECU 105needs to recognize the engine crankshaft position as soon as possible.Module 104 receives the cam and crankshaft signals from sensors 102 and103 for this purpose. For purposes of this description, the positionsignals from the cam and crankshaft sensors 102 and 103 are referred toas the “cam signal” and “crankshaft signal”, respectively.

The following steps describe the engine crankshaft position recognitionprocess performed by module 104 a. The various counters and registersreferred to below are part of module 104 a.

1) At the first detected rising edge of the cam signal, a crankshaftcounter is cleared and enabled.

2) The crankshaft counter is increased by one once a rising edge of thecrankshaft signal is captured.

3) Continue to increase the crankshaft counter until the falling edge ofthe cam signal is detected, and then stop the counting of the crankshaftcounter.

4) At the falling edge of the cam signal, based on the value of thecrankshaft counter, initialize a “position pointer” register to acorresponding value.

5) At the following rising edge of the crankshaft signal, store theposition value obtained from the look-up table in the crankshaftposition register 106.

An example of obtaining an crankshaft position value in this manner isdescribed below in connection with FIGS. 4A, 4B, 4C, and 5. As explainedbelow in connection with FIGS. 2A and 2B, the position pointer is usedto access a look-up table, thereby finding a position value at eachrising edge of the crankshaft signal. Each position value is associatedwith a crankshaft position in angle domain. If a resolution greater thanthat provided by the pulse width of the crankshaft signal is desired, anextrapolation unit 104 c is used to calculate position values betweenrising edges of the crankshaft signal.

In case of some patterns where the rising and falling edges of the camsignal occur at exactly the same time as the rising edge of thecrankshaft signal, the cam signal may be delayed by few clock cycles orsynchronized with the falling edge of the crankshaft signal, to makethem occur at different times. This will not affect crankshaft positiontracking because the cam signal is a relative reference to thecrankshaft position.

If the cam signal has more than one pulse in one engine cycle, then therising and falling edges of the cam signal will be detected in less thanone engine cycle, and therefore, the crankshaft position can berecognized in less than one engine cycle.

It should be understood that although the above steps refer the risingedge of the crankshaft signal, the falling edge could be alternativelybe used. The terms “rising edge” and “falling edge” are deemedequivalent herein for purposes of describing alternative methods ofposition recognition and tracking.

Also, in the case of some patterns where the number of the rising edgesof the crankshaft signal under two or more cam signal pulses is thesame, the number of the crankshaft signal rising edges between twoadjacent rising edges of the cam signal can be used to differentiate thecam signals, assuming the combination of the cam and crankshaft signalsis unsymmetrical.

Crankshaft Position Tracking

In addition to the engine crankshaft position data provided by module104 a, ECU 105 must have tracking data representing the crankshaftposition in real-time in order to command various engine operations thatare synchronized with the crankshaft position.

FIGS. 2A and 2B illustrate the crankshaft position tracking module 104b, which is based on use of a look-up table. FIG. 2A illustrates theinput and outputs of module 104 b, and FIG. 2B illustrates the contentsof the look-up table 202 of FIG. 2A.

Look-up table 202 may be implemented with a read-only memory (ROM)device. The index to look-up table 202 is the position pointer stored inregister 201, determined by module 104 a. More specifically, module 104a communicates data representing the pointer via register 201 to module104 b. Once the position pointer is thereby initialized, it is increasedby one at each rising edge of the crankshaft signal.

The output registers from look-up table 202 store data representing thefollowing: the corresponding position at each rising edge of thecrankshaft signal, the factor between the previous period and the comingperiod of the crankshaft signal based on its pattern, and the maximumextrapolated position during the coming period (right before the comingrising edge of the crankshaft signal) according to the position trackingresolution.

The table index (the position pointer) has values from 0 to m. Values ofm represent a count of the number of crankshaft signal rising edges perengine cycle minus one. As the engine crankshaft rotates, the value ofthe position pointer circulates from 0 to m.

The position value, Pos_(i) (i=0, 1, . . . , m), is the crankshaftposition value at each rising edge of the crankshaft signal. The factorvalue, Fac_(i), is the ratio between the degree period of the(i−1)^(th), i^(th) rising edges and the period of the i^(th), (i+1)^(th)rising edges. This ratio is determined by the mechanical pattern of thecrankshaft signal trigger tooth wheel.

Once the position pointer register 201 is updated, the values of theposition, factor, and maximum extrapolated position registers203,204,205 are updated immediately and simultaneously.

FIG. 3 illustrates an example of a portion of an engine crankshaftposition mechanical tooth wheel 31. It is assumed that the mechanicaltooth width is same for all teeth, and that the crankshaft signal risingand falling edges happen at the rising and falling edges of themechanical teeth, respectively.

The crankshaft angle degree distances between each two adjacent risingedges have the following relationships:θ_(i−4)=θ_(i−2)=θ_(i)=θ_(i+1,)θ_(i−3)=2θ_(i−4,)θ_(i−1)=3θ_(i−4)  (1)

From the mechanical pattern, the factor value at each rising edge can bedetermined as follows: $\begin{matrix}{{{Fac}_{i - 4} = {\frac{\theta_{i - 3}}{\theta_{i - 4}} = \frac{2}{1}}},{{Fac}_{i - 3} = {\frac{\theta_{i - 2}}{\theta_{i - 3}} = \frac{1}{2}}},{{Fac}_{i - 2} = {\frac{\theta_{i - 1}}{\theta_{i - 2}} = \frac{3}{1}}},{{Fac}_{i - 1} = {\frac{\theta_{i}}{\theta_{i - 1}} = \frac{1}{3}}},{{Fac}_{i} = {\frac{\theta_{i + 1}}{\theta_{i}} = \frac{1}{1}}},} & (2)\end{matrix}$These factor values are determined by only the mechanical crankshafttooth wheel pattern. For the same type of engines, the mechanical toothwheel patterns are the same, and therefore, the factor values are thesame. The values of Fac_(i−5) and Fac_(i+1) depend on θ_(i−5) andθ_(i+2), respectively, which, are not shown in FIG. 3.

Look-up table 202 separately stores the numerator and denominator of thefactor value. The upper half bits of the cell are used to store thenumerator and the lower half bits of the cell are used to store thedenominator.

Crankshaft Position Extrapolation

For production engines, the numbers of the crankshaft trigger signalsper engine cycle are usually very limited. Typically, they only haveabout 2×(60−2)=116 or 2×(60−3)=114 signals per engine cycle (720crankshaft angle degrees). As a result, the resolution is about 6crankshaft angle degrees.

However, in order to achieve optimal engine performance, for some engineoperations a smaller resolution may be desired. For example, injectionand ignition timings and durations need more precise control incrankshaft position angle domain. For such tasks, a desired resolutioncould a small as one crankshaft angle degree or less.

This small resolution requirement calls for extrapolation of thecrankshaft position provided by module 104 b. In the example of FIG. 1,the extrapolation is performed by module 104 c. The extrapolation isbased on the measured previous time periods between two successivetrigger signals. The factor values described above are used for theextrapolation of the crankshaft position, based on numericalextrapolation algorithms.

At steady state (constant engine speed), the periods between twoadjacent rising edges of the crankshaft signal have the followingrelationship, based on the factor values defined by the pattern of themechanical tooth wheel: $\begin{matrix}\begin{matrix}{{Period}_{i + 1} = {{Fac}_{i} \times {Period}_{i}}} \\{= {{Fac}_{i} \times {Fac}_{i - 1} \times {Period}_{i - 1}}} \\{= {{Fac}_{i} \times {Fac}_{i - 1} \times {Fac}_{i - 2} \times {Period}_{i - 2}}} \\{= \ldots}\end{matrix} & (3)\end{matrix}$

However, during transient states (engine accelerations ordecelerations), the measured previous periods should be considered, soas to predict the coming period at each rising edge of the crankshaftsignal as follows:PredictedPeriod_(i+1) =a ₀ ×Fac _(i)×Period_(i) +a ₁ ×Fac _(i) ×Fac_(i−1)×Period_(i−1) +a ₂ ×Fac _(i) ×Fac _(i−1) ×Fac_(i−2)×Period_(i−2) + . . . +a _(n) ×Fac _(i) ×Fac _(i−1) ×Fac _(i−2) ×. . . ×Fac _(i−n)×Period_(i−n)  (4),where n is the order of the estimation. Values of a₀, a₁, a₂, . . . , anare the coefficients determined by the numerical algorithm. Values ofFac_(i), Fac_(i−1), . . . , Fac_(i−n) are provided by look-up table 202at the previous rising edges and stored in the corresponding registers.Values of Period_(i) Period_(i−1), . . . , Period_(i−n) are thepreviously measured periods and stored in the corresponding registers.

Thus, at the i^(th) rising edge of the crankshaft signal, the sub-periodbetween two adjacent extrapolated crankshaft positions can bedetermined, based on the calculated (i+1)^(th) predicted period, theposition values at the current rising edge (i^(th)), and the maximumextrapolated position (which is determined by the crankshaft positiontracking resolution) before the next rising edge ((i+1)^(th)) of thecrankshaft signal, read from look-up table 202 as below: $\begin{matrix}{{SubPeriod}_{i} = \frac{{PredictedPeriod}_{i + 1}}{{EPos}_{i} - {Pos}_{i} + 1}} & (5)\end{matrix}$

At each rising edge of the crankshaft signal, a clock timer is clearedand started to count the time in clock ticks. The extrapolatedcrankshaft position counter is increased by one each time the clocktimer value equals to the multiple of the calculated sub-period value.Thus, the position counter can track the crankshaft position inreal-time according to the extrapolation resolution.

For some crankshaft tooth wheel patterns, the numerators anddenominators of the exact factor values in integer format could becomevery big. For example, if θ_(i)=10° and θ_(i+1)=9.1°,${Fac}_{i} = {\frac{\theta_{i + 1}}{\theta_{i}} = {0.91 = {\frac{91}{100}.}}}$The numerator, 91, and the denominator, 100₁₀=1100100₂, are to be storedin the look-up table 202, which requires 7 bits for each value.

To save memory space and reduce computational effort, the bit-widths forthe numerator and denominator in the look-up table are determined by thedesired position tracking resolution. For the above example, if thedesired tracking resolution is larger than 0.1°, the factor value can beset as Fac₁=0.91≈0.9= 9/10, which requires only 4 bits (10₁₀=1010₂) forthe numerator and denominator.

Example; Cam and Crankshaft Position Sensor Signals

FIGS. 4A-4C illustrate examples of cam and crankshaft position sensorsignal patterns. These example signals are used below to illustrate theoperation of system 100.

As shown in FIG. 4A, during one complete engine cycle (720° crankshaftangle degrees), the cam signal from sensor 102 has three pulses. Ofthese three pulses, two have the same pulse width and one has a narrowerpulse width.

As shown in FIG. 4B, the crankshaft position tooth wheel has one toothevery 6 crankshaft angle degrees but has 3 missing teeth. Therefore, thecrankshaft signal has from sensor 103 has one pulse every 6 crankshaftangle degrees but has 3 adjacent missing pulses. In other words, thecrankshaft position sensor 103 gives 60−3=57 pulse signals every onecrankshaft revolution (360° crankshaft angle). Among them, there are 6crankshaft angle degrees between all the adjacent rising edges exceptfor the two adjacent rising edges between missing teeth, which is 24crankshaft angle degrees.

FIG. 4C is a more detailed view of FIG. 4A superimposed with FIG. 4B.There are 2 crankshaft signal rising edges between the rising edge andthe falling edge of the first cam signal, 10 crankshaft signal risingedges between the rising edge and the falling edge of the second camsignal, and 7 crankshaft signal rising edges between the rising edge andthe falling edge of the third cam signal.

Example; Crankshaft Position Recognition

According to the crankshaft position recognition method of module 104 a,once engine 101 is rotated by the starter, and, at the first detectedfalling edge (after the first detected rising edge) of the cam signal,the value of the “crankshaft counter” (2, 10, or 7) can be used tolocate the corresponding crankshaft position at the following risingedge of the crankshaft signal.

At the first falling edge of the cam signal:

1) if the value of the crankshaft counter is 2, then the positionpointer register is set to 23, which corresponds the crankshaft positionof 138° crankshaft angle degrees as stored in the look-up table for thefollowing rising edge of the crankshaft signal;

2) if the value of the crankshaft counter is 10, then the positionpointer register is set as 70, which corresponds the crankshaft positionof 420° crankshaft angle degrees as stored in the look-up table for thefollowing rising edge of the crankshaft signal;

3) if the value of the crankshaft counter is 7, then the positionpointer register is set as 103, which corresponds the crankshaftposition of 618° crankshaft angle degrees as stored in the look-up tablefor the following rising edge of the crankshaft signal.

In this manner, the crankshaft position can be recognized once the firstpair of rising and falling edges of the cam signal is detected. For thisexample, because there are three cam signal pulses per engine cycle, thecrankshaft position can be recognized in less than one engine cycle(less than 720 crankshaft angle degrees) once the crankshaft is rotatedby the starter.

Crankshaft Position Tracking

Once module 104 a recognizes the engine crankshaft position, thecrankshaft position pointer is initialized. It is then increased by oneat each rising edge of the crankshaft position sensor signal. Thecrankshaft position tracking algorithm is used to track the crankshaftposition.

If the crankshaft position tracking extrapolation resolution is set as6/16=0.375°, the tracking algorithm needs to extrapolate 15 crankshaftpositions between two adjacent rising edges of the crankshaft signal(6°), and 23 crankshaft positions between the rising edges around themissing teeth.

FIG. 5 illustrates partial contents of look-up table 202 around themissing teeth, as generated by the position tracking module 104 b. Thevalues of the columns at other regular pulses of the crankshaft signalare straightforward and are not shown. Because pulses of the crankshaftsignal are equally distributed at most locations except at the missingteeth, the factor values are mostly 1 except at the crankshaft signalrising edges around the missing teeth.

Because the tracking resolution is 0.375°, the position values in thetable are from 0/0.375=0 to (720−0.375)/0.375=1919. The position valuefrom the table times the resolution will be the actual crankshaftposition in crankshaft angle domain.

For purposes of illustration, FIG. 5 also sets out the actual crankshaftangle degree positions. However, these values need not be stored in theactual look-up table 202.

Once look-up table 202 is built, the position tracking module 104 b maybe used to track the engine crankshaft position in real-time and toprovide the engine crankshaft position information for all theposition-synchronized functions (such as injections and ignitions). Oncebuilt, look-up table 202 can be easily modified to reflect values forany other arbitrary cam or crankshaft signal pattern.

1. A method of recognizing the crankshaft position of an engine, whereinthe engine provides a pulse-type cam signal and a pulse-type crankshaftsignal, comprising: assigning a position value corresponding to eachrising edge of the crankshaft signal; wherein each position valuerepresents the crankshaft position in angle degrees around a cycle ofthe crankshaft; storing values representing, for each pulse of the camsignal within a cam cycle, the number of crankshaft pulses within thatcam pulse and an associated initial crankshaft position value; at adetected rising edge of the cam signal, clearing and initializing acrankshaft counter; increasing the crankshaft counter by one for eachrising edge of the crankshaft signal, until the falling edge of the camsignal is detected; at the falling edge of the cam signal, accessing thestored values; and based on the value of the crankshaft counter,selecting the associated initial crankshaft position value.
 2. Themethod of claim 1, wherein the rising edges of the cam signal and thecrankshaft signal occur at the same time, and further comprising thestep of delaying one of the signals.
 3. A crankshaft positionrecognition unit for recognizing the crankshaft position of an engine,wherein the engine provides a pulse-type cam signal and a pulse-typecrankshaft signal, comprising: memory for storing a position valuecorresponding to each rising edge of the crankshaft signal; wherein eachposition value represents the crankshaft position in angle degreesaround a cycle of the crankshaft; memory for storing valuesrepresenting, for each pulse of the cam signal within a cam cycle, thenumber of crankshaft pulses within that cam pulse and an associatedinitial crankshaft position value; a crankshaft counter, wherein at adetected rising edge of the cam signal, the counter is cleared andinitialized; the crankshaft counter further operable to increment by onefor each rising edge of the crankshaft signal, until the falling edge ofthe cam signal is detected; a processor for accessing the stored valuesat the falling edge of the cam signal, accessing the stored values, andbased on the value of the crankshaft counter, selecting the associatedinitial crankshaft position value.
 4. The recognition unit of claim 3,wherein the processor is implemented with firmware.
 5. The recognitionunit of claim 3, wherein the processor is implemented with a softwareprogrammable device.
 6. The recognition unit of claim 3, wherein therising edges of the cam signal and the crankshaft signal occur at thesame time, and wherein the counter is delayed to make them occur atdifferent times.
 7. A method of providing, to a crankshaft positioncalculating unit, tracking data for determining the position of thecrankshaft of an engine, the crankshaft having an associated pulse-typecrankshaft signal, comprising: storing, in a data memory, for eachrising edge of the crankshaft signal, a position value representing thecrankshaft position at that rising edge and an extrapolation factorvalue; wherein the position value times a degree angle resolutionprovides the crankshaft position in degree angle domain; obtaining acurrent position value of the crankshaft; using the current positionvalue to initialize a position pointer; wherein the position pointer isa count of the crankshaft signal rising edges per engine cycle;incrementing the position pointer for each rising edge of the crankshaftsignal; using values of the position pointer to access the correspondinglocation in the memory; and delivering, to the crankshaft positionprocessing unit, for at least one rising each, the associated positionvalue and extrapolation factor value.
 8. The method of claim 7, whereinthe data memory is a look-up table.
 9. The method of claim 7, whereineach extrapolation factor value is a ratio between the degree period ofthe previous rising edge relative to the current rising edge and of thenext rising edge relative to the current rising edge.
 10. The method ofclaim 9, wherein each degree period is determined by the mechanicalpattern of a crankshaft signal trigger tooth wheel of the engine. 11.The method of claim 9, wherein the data memory separately stores anumerator and denominator of the ratio.
 12. The method of claim 9,wherein the data memory further stores a maximum extrapolation value.13. A crankshaft position tracking unit for providing, to a crankshaftposition calculating unit, tracking data for determining the position ofthe crankshaft of an engine, the crankshaft having an associatedpulse-type crankshaft signal, comprising: a data memory, for storing, ateach rising edge of the crankshaft signal, a position value representingthe crankshaft position at that rising edge and an extrapolation factorvalue; wherein the position value times a degree angle resolutionprovides the crankshaft position in degree angle domain; a processor forobtaining a current position value of the crankshaft; using the currentposition value to initialize a position pointer; wherein the positionpointer is a count of the crankshaft signal rising edges per enginecycle; incrementing the position pointer for each rising edge of thecrankshaft signal; using values of the position pointer to access thecorresponding location in the memory; and delivering, to the crankshaftposition processing unit, a position value and an extrapolation factorvalue associated with at least one rising edge.
 14. The tracking unit ofclaim 13, wherein the processor is implemented with firmware.
 15. Thetracking unit of claim 13, wherein the processor is implemented with asoftware programmable device.
 16. A method of providing datarepresenting the degree angle position of the crankshaft of an engine,the crankshaft having an associated pulse-type crankshaft signal,comprising: receiving, at a crankshaft position calculating unit, thefollowing data associated with a rising edge of the crankshaft signal: aposition value representing the crankshaft position at the rising edge,an extrapolation factor value, and a maximum extrapolation value;wherein the position value times a degree angle resolution provides thecrankshaft position in degree angle domain; detecting rising edges ofthe crankshaft signal; at a current rising edge of the crankshaftsignal, calculating an extrapolated position of the crankshaft, based onthe following values: a calculated predicted period to the next risingedge, the maximum extrapolation value, and a position value; and whereinthe calculated predicted period is based on at least the previous periodto the current rising edge (in angle degree distance) and its associatedfactor value.
 17. The method of claim 16, wherein the degree angleresolution is not equal to one, further comprising multiplying thedegree angle resolution times the position value.
 18. The method ofclaim 16, wherein the engine is in transient state and the predictedperiod is based on a number of previous period values, each having anassociated factor value and a mathematically determined coefficientvalue.
 19. An engine crankshaft position calculating unit for calculatedan extrapolated crankshaft position of an engine that has a crankshaftand that generates a pulse-type crankshaft signal, comprising: memoryfor storing the following data associated with each rising edge of thecrankshaft signal: a position value representing the crankshaft positionat the rising edge, an extrapolation factor value, and a maximumextrapolation value; wherein the position value times a degree angleresolution provides the crankshaft position in degree angle domain; anda processor for receiving data representing rising edges of thecrankshaft signal, and for calculating, at a current rising edge of thecrankshaft signal, an extrapolated position of the crankshaft, based onthe following values: a calculated predicted period to the next risingedge, the maximum extrapolation value, and a position value; wherein thecalculated predicted period is based on at least the previous period tothe current rising edge (in angle degree distance) and its associatedfactor value.
 20. The calculating unit of claim 19, wherein at leastpart of the tasks of the processor are integrated into an engine controlunit associated with the engine.